package com.alander.nexusgo.post.service;

import com.alander.nexusgo.common.model.dto.PostCommentsListDTO;
import com.alander.nexusgo.common.model.vo.PostCommentsVO;
import com.alander.nexusgo.post.model.entity.PostComments;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author alander
*/
public interface PostCommentsService extends IService<PostComments> {
    /**
     * 添加评论
     * @param comment 评论信息
     * @param userId 用户ID
     * @return 添加的评论VO
     */
    PostCommentsVO createComment(PostComments comment, Long userId);

    /**
     * 更新评论
     * @param id 评论ID
     * @param comment 更新的评论信息
     * @param userId 用户ID
     * @return 更新后的评论VO
     */
    PostCommentsVO updateComment(Long id, PostComments comment, Long userId);

    /**
     * 删除评论
     * @param id 评论ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteComment(Long id, Long userId);

    /**
     * 获取评论详情
     * @param id 评论ID
     * @return 评论VO
     */
    PostCommentsVO getCommentById(Long id);

    /**
     * 查询评论列表
     * @param postCommentsListDTO 查询条件
     * @return 评论VO列表
     */
    List<PostCommentsVO> listComments(PostCommentsListDTO postCommentsListDTO);
}